﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using Ucb.Workshop.Dal;

namespace Ucb.Workshop.Business
{
   public class Compras
    {
        DBManager conexion = new DBManager();

        int _Cod_compra;

        public int CodCompra
        {
            get { return _Cod_compra; }
            set { _Cod_compra = value; }
        }
        int _cod_pedido;

        public int CodPedido
        {
            get { return _cod_pedido; }
            set { _cod_pedido = value; }
        }
        float _total;

        public float Total
        {
            get { return _total; }
            set { _total = value; }
        }
        DateTime _fecha;

        public DateTime Fecha
        {
            get { return _fecha; }
            set { _fecha = value; }
        }
        string _estado;

        public string Estado
        {
            get { return _estado; }
            set { _estado = value; }
        }

        float _deuda;

        public float Deuda
        {
            get { return _deuda; }
            set { _deuda = value; }
        }

        int _nrofactura;

        public int Nrofactura
        {
            get { return _nrofactura; }
            set { _nrofactura = value; }
        }

        public void Insertar()
        {
            //string consulta = "INSERT INTO compra(cod_pedido, total, fecha, estado, deuda, nrofactura) VALUES(" + this.Cod_pedido + ", " + this.Total + ", '"+this.Fecha.ToShortDateString()+"','"+this.Estado+"', "+this.Deuda+", "+this.Nrofactura+")";
            string consulta = "INSERT INTO compra(cod_pedido, total, fecha, estado, deuda, nrofactura) VALUES(" + this.CodPedido + ", " + this.Total + ", '" + this.Fecha.ToShortDateString() + "','" + this.Estado + "', " + this.Deuda + ", " + this.Nrofactura + ")";

            //MessageBox.Show(consulta);

            conexion.EjecutarConsulta(consulta);
            //conexion.ejecutarConsulta("insert into pedido(fecha, estado, total) values('2009-04-22','PEDIDO', " + this.Total + ")");
        }

        public int ComprasCod()
        {
            int codigo = 0;
            string consulta = "SELECT MAX(cod_compra) FROM compra";
            SqlDataReader valores = conexion.ExeConsulta(consulta);

            if (valores.HasRows)
            {

                while (valores.Read())
                {
                    codigo = valores.GetInt32(0);
                }

            }
            return codigo;
        }

        // Metodo que actualiza la deuda de la compra
        public void RegistrarDeuda(float valor)
        {
            string consulta = "UPDATE compra SET deuda = (deuda - " + valor + ") WHERE cod_compra = " + this.CodCompra;
            conexion.EjecutarConsulta(consulta);


        }

        // Metodo que verifica si la deuda ya fue pagada
        public void VerificarDeuda()
        {
            string consulta = "SELECT * FROM compra WHERE cod_compra = " + this.CodCompra + " AND deuda = 0";
            SqlDataReader valores = conexion.ExeConsulta(consulta);

            if (valores.HasRows)
            {

                while (valores.Read())
                {
                    // cambiamos el estado de la compra
                    string consultaUpd = "UPDATE compra SET estado = 'COMPRA' WHERE cod_compra = " + this.CodCompra;
                    conexion.EjecutarConsulta(consultaUpd);

                }

            }
        }
    }
}
